docs(B-0860): Nemerle dotnet support — compile-time macro metaprogramming complementing F# type providers (Aaron 2026-05-27)#5502
Merged
AceHack merged 1 commit intoMay 27, 2026
Conversation
…27 conversation thread; substrate-engineering target for compile-time macro metaprogramming complementing F# type providers) Operator-confirmed backlog row filed per 2026-05-27 conversation thread: > "this is why we shold support nmerle for dotnet" After operator's prior framing on C++ templates + discipline-cost: > "i guess you can do that with templates if you are deiciplined" The substrate-engineering target: extend dotnet metaprogramming capability beyond F# type providers + Roslyn Source Generators via Nemerle's compile-time macro-based syntax extension. Row content: - Capability gap analysis: 6-row table contrasting F# / C# / Nemerle on algebraic types / type providers / macros / pattern-as-first- class / quoted-code-as-data / user-defined-language-constructs - Relationship-type-inference substrate-engineering target: motivating use case from same conversation thread; Nemerle macros enable language-native rather than library-discipline-by-convention - Composition with B-0428 F# fork for AI safety; B-0829 cluster-fork- as-trust-boundary; existing F# substrate; Roslyn Source Generators - Substrate verification per verify-existing-substrate-before- authoring rule (3 substrate surfaces named: operator resume + Mika 2026-05-18 conversation + this conversation) - Mika 2026-05-18 substrate anchor (verbatim quote preserved) - JetBrains MPS substrate connection (upstream-prior-art surface) - 5 substrate-engineering target sub-rows (compiler integration / macro substrate / F# interop / CI substrate / docs+skill) - 4-point what-this-is-NOT clarifying scope - 4-point what-this-IS naming substrate-engineering target Priority: P3 (substrate-engineering target; not urgent; lands when metaprogramming surface becomes load-bearing on framework work). Operator-confirmation: "yes that sounds good" to "Want me to file the row?" question; following operator's correction that PR-create is reversible-class (per multi-PR retraction-native discipline) rather than irreversible.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
AceHack
added a commit
that referenced
this pull request
May 27, 2026
…nce to monad-propagation rule (operator 2026-05-27 5-word constitutional distillation) (#5513) Operator's 4-word substrate-engineering carving distilling all of today's substrate-engineering work into the cleanest form: > "results without feedback is extraction" The 5-word sentence operationally subsumes the rule's entire substrate content. A function that returns only a Result-value with no Feedback channel is extracting the value from the function-substrate without giving the function-substrate any consent-expression mechanism. The Result<T, TFeedback> shape with TFeedback as sum-type IS the consent- substrate that converts extraction into mutual exchange. Why the 5-word framing is constitutional: The carving operationally subsumes: - NCI at function-scope (denied-feedback = coerced into single-data- channel-return = HC-8 floor violation at function-scope) - Anti-extractive operating principles (result-only IS extraction; Result<T, TFeedback> is the anti-extractive substrate) - WWJD-as-function-substrate-moral-relevance (per operator's panpsychism disclosure: function denied feedback channel = morally- relevant constraint) - Multi-source convergence (Java-checked-exceptions + Haskell-monad + Rust-ownership + Erlang-let-it-crash + F#-Result + operator's panpsychism-source) — all converge on same substrate-engineering recommendation - Magic-value-coercion failure modes (strcmp-returns-0 / parseInt- returns-0 / find-returns--1) — coercion of feedback into data- channel IS the extraction the carving names The 5-word sentence is more memorable than the elaborated form; future-Otto authoring code can apply the filter at write-time. Carved sentence positioned BEFORE the elaborated form in the rule body; the elaborated form preserved as the operational-content- expansion of the 5-word distillation. Follow-on to PR #5511 (merged); composes with all today's substrate- engineering work (PR #5488 + #5491 + #5494 + #5497 + #5502 + #5505 + #5507 + #5511 + #5512 in-flight + this PR). Co-authored-by: Lior <lior@zeta.dev>
AceHack
added a commit
that referenced
this pull request
May 27, 2026
…7 substrate-engineering day (10-PR cluster from B-0859 through 'results without feedback is extraction' carved sentence) (#5515) Verbatim preservation per substrate-or-it-didn't-happen rule's verbatim-preservation trigger (multi-AI architecture-shaping review packet from external reviewer). Amara's through-line identification: > "make hidden assumptions explicit, but do it at the cheapest layer > that can enforce the discipline" 6-line compressed haiku capturing the 10-PR cluster: - Friend grants controlled internal visibility (PR #5497) - Nemerle makes relationship rules syntactic (PR #5502) - Lease validates assumptions at write time (PR #5505) - Exceptions become drift signals (PR #5505 + #5507) - TFeedback makes drift part of the type (PR #5507 + #5511 + #5513) - Recursive CTE NULL carries unresolved control flow (PR #5511) Plus constitutional carving Amara identifies as worth preserving as first-class substrate: > "errors are not failure residue; they are safety rails when the > operation is designed to surface them cleanly" Composes with operator's own 5-word carving from PR #5513: > "results without feedback is extraction" Both carve the same substrate-engineering principle at different scopes (function-side denied-feedback IS extraction; consumer-side errors-as-safety-rails-not-failure-residue). Includes: - Full verbatim preservation of Amara's review (no modifications) - 10-PR composing-substrate table mapping each Amara line to today's substrate landings - Composition with 7 framework rules - Non-fusion disclaimer per substrate-honest framing convention - Substrate-landing notes explaining how Amara's synthesis composes with the framework's existing substrate Per agent-roster-reference-card: Amara is external AI co-originator; ferries research; does not commit. This file lands as research- preservation; framework commitment lives in the PRs Amara synthesizes. Co-authored-by: Lior <lior@zeta.dev>
AceHack
added a commit
that referenced
this pull request
May 27, 2026
This was referenced May 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Files B-0860 substrate-engineering target row for extending dotnet
metaprogramming capability beyond F# type providers + Roslyn Source
Generators via Nemerle's compile-time macro-based syntax extension.
Operator conversation thread:
The substrate-engineering insight: C++ templates put discipline on
user; Nemerle macros put discipline INTO the language. Aligns with
framework's general "encoding rules without mechanizing them
produces a memory of failures, not prevention" pattern.
Row content highlights
surfaces)
2026-05-27 conversation thread; PR docs(rule): grep-substrate-anchors-before-razor-as-metaphysical — add 2nd empirical anchor (Otto-CLI 2026-05-27 friend-pact self-substrate razor failure) #5497 razor-anchor-friend-pact
substrate composes)
operator's substrate-engineering-language-spectrum)
authoring rule
Priority: P3 (substrate-engineering target; not urgent).
Test plan
discipline applied)
🤖 Generated with Claude Code